package com.ruoyi.flow.flow;

/**
 * @Author: wtian
 * @Description:
 * @Date: Created in 17:16 2018/8/9
 * @Version: 1.0
 */
public class FlowConstants {
    /**
     * 每页分页条数
     */
    public static final int PAGE_SIZE = 10;

    public static final String VAR_INITIATOR = "$INITIATOR";

    /**
     * 用于设置流程办理人员变量名称
     */
    public static enum Assignee {
        /**
         * 流程发起人变量。该变量由流程设计器在选择发送给发起人时自动设置
         */
        INITIATOR("$INITIATOR"),

        /**
         * 流程发起人变量
         */
        STARTER("starter"),

        /**
         * 由程序自动生成单个办理用户
         */
        SINGLEUSER("singleUser"),

        /**
         * 由上一节点用户办理时选择当前节点办理用户
         */
        SELECTSINGLEUSER("selectSingleUser"),

        /**
         * 由程序自动生成多个可选办理用户
         */
        MULTIUSER("multiUser"),

        /**
         * 由上一节点用户办理时选择当前节点多个可选办理用户
         */
        SELECTMULTIUSER("selectMultiUser"),

        SINGLEGROUP("singleGroup"),

        MULTIGROUP("multiGroup"),

        SELECTSINGLEGROUP("selectSingleGroup"),

        SELECTMULTIGROUP("selectMultiGroup");

        private String assignee;

        Assignee(String assignee) {
            this.assignee = assignee;
        }

        public String getAssignee() {
            return assignee;
        }
    }

    public static enum ModelType {
        MODEL(0),
        FORM(2);

        private int modelType;

        ModelType(int modelType) {
            this.modelType = modelType;
        }

        public int getModelType() {
            return modelType;
        }
    }

    /**
     * 流程实例状态
     */
    public static enum FlowStatus {
        /**
         * 未完成
         */
        UNFINISHED,
        /**
         * 已挂起
         */
        SUSPENDED,
        /**
         * 已激活
         */
        ACTIVED,
        /**
         * 已委托
         */
        DELEGATED,
        /**
         * 已完成
         */
        FINISHED;
    }
}
